/*
 * @Description: 数据库层
 * @Autor: HuiSir<273250950@qq.com>
 * @Date: 2020-11-09 09:59:34
 * @LastEditTime: 2020-11-11 11:09:12
 */
const mongoose = require('mongoose')
const { DB } = require('../../config') //配置文件
const { Log, Print } = require('../utils/logger') //日志

/**
 * 这里使用mongoose模块连接mongodb数据库
 * 使用mongoose模块操作数据库的模块层在根目录db文件夹中
 * 连接数据库需要配置的选项在根目录config.js中
 */

//连接数据库
//说明:虽然连接数据库是异步操作，但mongoose内置了缓存，即使还没有连接到数据库，也能使用模型并不会报错。
//故这里不比使用回调或者promise去等待数据库连接成功再执行后续增删改查

const { account, pass, port, name } = DB
const Account = account ? `${account}:${pass}@` : '' //是否有账号和密码
mongoose.connect(
    `mongodb://${Account}127.0.0.1:${port}/${name}`,
    { useNewUrlParser: true },
    (err) => {
        if (!err) {
            Print.info(`数据库${name}已连接成功`)
        } else {
            Log.error(err)
        }
    }
)

module.exports = mongoose
